DoCmd.Echo は Access VBA において、画面更新(描画)を一時的に無効にして処理を高速化するために使うメソッドです。大量の操作をユーザーに見せたくない場合や、処理中のチラつきを防止したいときに便利です。
目次
🔹 基本構文
DoCmd.Echo EchoOn, bstrStatusBarText
🔸 引数の解説
| 引数名 | 型 | 説明 |
|---|---|---|
EchoOn | Boolean | True = 画面更新を有効(表示)/False = 無効(非表示) |
bstrStatusBarText | String(省略可) | EchoOn = False のときに表示するステータスバーのメッセージ(例:「処理中です…」など) |
✅ 使用例:画面更新をオフにしてからバッチ処理
Sub UpdateData()
DoCmd.Echo False, "データを更新中です..."
' 複数のデータ更新処理
DoCmd.OpenQuery "qryUpdatePrices"
DoCmd.OpenQuery "qryUpdateStock"
DoCmd.Echo True
MsgBox "更新が完了しました。"
End Sub
✅ 注意点
DoCmd.Echo Falseのあと、必ずTrueに戻すようにしてください。戻し忘れると画面がフリーズしたように見えます。- エラー時でも確実に
Trueに戻すため、On ErrorやFinally処理を組み込むのが理想です。
✅ 補足
Echoメソッドは「画面描画制御専用」であり、処理のスピードそのものには影響しません。- ステータスバーのテキストは Access の下部バーに一時表示されます(フォームやレポートには表示されません)。
